<?php

//funcao de verificação de log
function verificaUsuarioLogado() {
    if (isset($_SESSION["usuario_logado"])) {
        return true;
    }else
        return false;
}

//------------------------------------------------------------------------------
//funcao de verificação de permissao
function verificaPermissao($pagina) {
    $permissoes = $_SESSION["usuario_logado"]['permissao'];
    foreach ($permissoes as $value) {
        if (substr_count($pagina, $value['permissao']) or $value['permissao'] == 'administrador')
            return true;
    }
    return false;
}

//------------------------------------------------------------------------------
//funcao de verificação de permissao
function atualizaLogUsuario($configurator) {

    //inclusão das classes
    include_once($configurator["classes"] . "/usuario.classes.php");
    include_once($configurator["dao"] . "/usuarioDao.php");

    //instanciação dos objetos
    $_usuario = new UsuarioDao();

    $codigo = $_SESSION["usuario_logado"]['codigo'];

    $_usuario->atualizaTempoUsuario($codigo);

    return true;
}

//------------------------------------------------------------------------------
//funcao de verificação de cpf Unico
function validaCpfUnico($cpf) {
    // Configurações do sistema
    require("../configuracao/configurator.php");
    //inclusão das classes
    include_once($configurator["classes"] . "/usuario.classes.php");
    include_once($configurator["dao"] . "/usuarioDao.php");

    //instanciação dos objetos
    $_usuario = new UsuarioDao();

    if ($_usuario->verificaCpf($cpf))
        return true;
    else
        return false;
}

//------------------------------------------------------------------------------
//funcao de verificação de tempo de ociosidade do sistema que é de 5 minutos
function verificarExpiracaoSessao() {
    if (time() > $_SESSION['logado_em'] + 300) {
        $_SESSION["usuario_logado"] = null;
        $_SESSION['logado_em'] = "expirou";
        return true;
    }else{
        $_SESSION['logado_em'] = time();
        return false;
    }
}

//------------------------------------------------------------------------------
//funcao de verificação de permissao
function validaLoginUnico($login) {
    // Configurações do sistema
    require("../configuracao/configurator.php");
    //inclusão das classes
    include_once($configurator["classes"] . "/usuario.classes.php");
    include_once($configurator["dao"] . "/usuarioDao.php");

    //instanciação dos objetos
    $_usuario = new UsuarioDao();

    if ($_usuario->verificaLogin($login))
        return true;
    else
        return false;
}

//-------------------------------------------------------------------------------
//função que monta um array para paginação dos registros
function montaPaginacao($totRegistros, $porPagina, $pagina) {
    $paginas = array();

    $totPaginas = ceil($totRegistros / $porPagina);

    if ($pagina > 1) {
        $paginas[] = array("url" => ($pagina - 1), "anterior" => 1, "ativo" => 0);
    } else {
        $paginas[] = array("url" => "", "anterior" => 1, "ativo" => 1);
    }
    if (($totPaginas - $pagina) > 6)
        $value = 6 + $pagina;
    else
        $value = $totPaginas;
    if (($pagina) > 5)
        $val = $pagina - 5;
    else
        $val = 1;
    if ($totPaginas > 0) {
        for ($i = $val; $i <= $value; $i++) {
            if ($pagina == $i)
                $paginas[] = array("url" => $i, "ativo" => 1, "item" => 1);
            else
                $paginas[] = array("url" => "$i", "ativo" => 0, "item" => 1);
        }
    }else {
        $paginas[] = array("url" => "1", "ativo" => 1);
    }

    if ($pagina < $totPaginas) {
        $paginas[] = array("url" => ($pagina + 1), "ativo" => 0, "proximo" => 1);
    } else {
        $paginas[] = array("url" => "", "ativo" => 1, "proximo" => 1);
    }

    return $paginas;
}

//------------------------------------------------------------------------------------
//função que monta um array para paginação dos registros
function montaPaginacaoAjax($totRegistros, $porPagina, $pagina, $url, $url2, $url3) {

    // paginação
    $paginas = array();
    $totPaginas = ceil($totRegistros / $porPagina);

    if ($pagina > 1) {
        $paginas[] = array("url" => $url, "anterior" => 1, "ativo" => 0);
    } else {
        $paginas[] = array("url" => "", "anterior" => 1, "ativo" => 1);
    }
    if (($totPaginas - $pagina) > 6)
        $value = 6 + $pagina;
    else
        $value = $totPaginas;
    if (($pagina) > 5)
        $val = $pagina - 5;
    else
        $val = 1;
    if ($totPaginas > 0) {
        for ($i = $val; $i <= $value; $i++) {
            if ($pagina == $i)
                $paginas[] = array("url" => $i, "ativo" => 1, "item" => 1);
            else
                $paginas[] = array("url" => "<a href='$url2&pag=$i'>$i</a>", "ativo" => 0, "item" => 1);
        }
    }else {
        $paginas[] = array("url" => "1", "ativo" => 1);
    }

    if ($pagina < $totPaginas) {
        $paginas[] = array("url" => $url3, "ativo" => 0, "proximo" => 1);
    } else {
        $paginas[] = array("url" => "", "ativo" => 1, "proximo" => 1);
    }

    return $paginas;
}

//------------------------------------------------------------------------------------
//funçao de validação de email
function validaEmail($email) {
    if (preg_match('/^[^@]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$/', $email))
        return true;
    else
        return false;
}

//--------------------------------------------------------------------------------
// Função que valida o CPF
function validaCPF($cpf) {
    // Verifiva se o número digitado contém todos os digitos
    $cpf = str_pad(ereg_replace('[^0-9]', '', $cpf), 11, '0', STR_PAD_LEFT);

    // Verifica se nenhuma das sequências abaixo foi digitada, caso seja, retorna falso
    if (strlen($cpf) != 11 || $cpf == '00000000000' || $cpf == '11111111111' || $cpf == '22222222222'
            || $cpf == '33333333333' || $cpf == '44444444444' || $cpf == '55555555555' || $cpf == '66666666666'
            || $cpf == '77777777777' || $cpf == '88888888888' || $cpf == '99999999999') {
        return false;
    } else {
        // Calcula os números para verificar se o CPF é verdadeiro
        for ($t = 9; $t < 11; $t++) {
            for ($d = 0, $c = 0; $c < $t; $c++) {
                $d += $cpf{$c} * (($t + 1) - $c);
            }
            $d = ((10 * $d) % 11) % 10;
            if ($cpf{$c} != $d) {
                return false;
            }
        }
        return true;
    }
}

//--------------------------------------------------------------------------------
// trata imagens
function reduz_imagem($img, $max_x, $max_y, $nome_foto, $flag = true, $crop = false) {
    global $configurator;

    require_once $configurator["classes"] . "/class.upload.php";

    list($width, $height) = getimagesize($img);

    $original_x = $width;
    $original_y = $height;

    if ($flag) {
        if ($original_x > $original_y) {
            $porcentagem = (100 * $max_x) / $original_x;
        } else {
            $porcentagem = (100 * $max_y) / $original_y;
        }
    } else {
        $porcentagem = (100 * $max_x) / $original_x;
    }

    $tamanho_x = $original_x * ($porcentagem / 100);
    $tamanho_y = $original_y * ($porcentagem / 100);

    // evitando que as imagens fiquem esticadas
    if ($original_x < $tamanho_x)
        $tamanho_x = $original_x;
    if ($original_y < $tamanho_y)
        $tamanho_y = $original_y;

    $diretorio = substr($nome_foto, 0, strripos($nome_foto, "/"));
    $arquivo = substr($nome_foto, strripos($nome_foto, "/") + 1);
    $arquivo = substr($arquivo, 0, strpos($arquivo, "."));

    $imagem = new upload($img);
    $imagem->image_y = $tamanho_y;
    $imagem->image_x = $tamanho_x;
    $imagem->image_resize = true;
    $imagem->image_ratio_crop = true;
    $imagem->file_overwrite = true;
    $imagem->file_auto_rename = false;
    $imagem->image_convert = "png";

    $imagem->file_new_name_body = $arquivo;
    $imagem->process($diretorio);
}

?>
